function Cykl_out = mergeA( Cykl1, Cykl2, WeightMatrix, DemandMatrix)
% tahle funkce je dobra volat pro jednu instanci 2x, jednou s otocenym
% route vektorem a tim i matici "edges"

Cykl_out = Cykl1;

index_node1 = length( Cykl1.route );
index_node2 = 1;

for i=1:length( Cykl2.route )  
    if ( routeContainsNode( Cykl2.edges(:,1)' , Cykl2.route(1, i) ) > 0 )     
        index_node2 = i;
        break;      
    end 
end

for i=length( Cykl1.route ):-1:1  
    if ( routeContainsNode( Cykl1.edges(:,2)' , Cykl1.route(1, i) ) > 0 )     
        index_node1 = i;
        break;      
    end 
end

% pokud oba indexy jsou stejne uzly, muzeme to sloucit!

if ( Cykl1.route(1, index_node1) == Cykl2.route(1, index_node2) )
     
    Cykl_out.route = [ Cykl1.route(1, 1:(index_node1-1) ) Cykl2.route(1, index_node2:end ) ];
    Cykl_out.edges = [ Cykl1.edges ; Cykl2.edges ];
    Cykl_out.cost = costOfRoute( Cykl_out.route, WeightMatrix );
    Cykl_out.demand = demandOfRoute( Cykl_out.edges, DemandMatrix );
    
end


end

